/*
 *  AMediaDesc.h
 *  libavid
 *
 *  Created by Peter on 25.02.12.
 *  Copyright 2012 __MyCompanyName__. All rights reserved.
 *
 */

#ifndef A_MEDIA_DESC_H
#define A_MEDIA_DESC_H

#include "AObject.h"
#include "AvTypes.h"

/*
 * Encapsulates OMFi's 'MDES'. Version: 3 (MC 5.5)
 * WARNING: This can come up on its own, not only as a derived class -> we need
 *          to fix the fact that all concrete classes currently read the end 
 *          TagMark themselves. We could just have the AObjDoc do that.
 */
class AMediaDesc : public AObject
{
	
public:	
	
	A_DECLARE_CLASS( 'MDES', AMediaDesc, AObject );
	
	virtual void readFromStream( AStream& str, const AObjDoc& objd );
	virtual void dump( std::ostream& str ) const;
	
	Int8   _mobKind;       // OMFI:MDES:MobKind: 1
	UInt32 _locator;       // OMFI:MDES:Locator: 0x000000EB  // MSMLocator* or AMacFileLocator* so far
	bool   _intermediate;  // OMFI:MDES:MC:Intermediate: False
	UInt32 _physicalMedia; // OMFI:MOBJ:PhysicalMedia: 0x00000000 // Pointer to, well, something
	
	// PClass ext that only seems to be present in a few cases (with AMA clips?)
	bool   _haveUid;       // Our own field
	acfUID _acfUid;        // OMFI:AMDL:acfUID
};

#endif /*Inclusion Guard*/